In a traditional cluster computing application, cluster computing users request computing jobs by configuring a cluster computing server to run the job with a desired level of resources. Most users do not know the level of resources required by their job and thus request more resources than are required by the job. This results in unnecessary allocation of the cluster capacity and reduction of the overall usage of the cluster.